package com.example.daibanshiwu.mapper;


import com.example.daibanshiwu.pojo.Message;
import com.example.daibanshiwu.pojo.TUser;
import com.example.daibanshiwu.pojo.excelFileDTO;
import com.example.daibanshiwu.pojo.t_group;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface HomeMapper {

    /**
     * 【合并后的方法】
     * 根据用户ID，直接查询出其需要处理的所有消息
     * @param userId 用户ID
     * @return 消息列表
     */
    List<Message> findMessagesByUserId(Integer userId);

    /**
     * 根据用户ID，查询出其需要处理的“紧急”消息
     * @param userId 用户ID
     * @return 紧急消息列表
     */
    List<Message> findUrgentMessagesByUserId(Integer userId);

    /**
     * 根据用户ID，查询出其需要处理的“教学事务”消息
     * @param userId 用户ID
     * @return 教学事务列表
     */
    List<Message> findTeachingAffairsMessagesByUserId(Integer userId);

    //教科研事务
    List<Message> findResearchAffairsMessagesByUserId(Integer userId);

    //学科竞赛
    List<Message> findAcademicCompetitionMessagesByUserId(Integer userId);

    //学习培训
    List<Message> findLearningTrainingMessagesByUserId(Integer userId);

    /**
     * 【新增】根据消息ID更新其状态
     * @param messageId 消息的ID
     * @param newStatus 新的状态值 (例如: "已读", "已办")
     * @return 返回受影响的行数，大于0表示更新成功
     */
    int updateMessageStatus(@Param("messageId") int messageId, @Param("newStatus") String newStatus);

    //预览excel文件
    excelFileDTO findExcelFileByMessageId(@Param("id") String id);
}
